package cn.blnp.net.flowable.task.service.error;

import org.flowable.engine.delegate.BpmnError;
import org.flowable.engine.delegate.DelegateExecution;
import org.flowable.engine.delegate.JavaDelegate;

/**
 * <h3></h3>
 *
 * @author <a href="mailto:blnp.yibin@qq.com">lyb</a>
 * @version 1.0
 * @since 2025/5/13 11:42
 */
public class ThrowBpmnErrorDelegate implements JavaDelegate {
    @Override
    public void execute(DelegateExecution execution) {
        try {
            //执行自定义业务逻辑
            //executeBusinessLogic();
        } catch (Exception e) {
            //该构造函数的参数是业务错误代码，用于决定由哪个错误处理器来响应这个错误。需要注意的是，这种方式只适用于业务错误，
            // 需要通过流程中定义的错误边界事件或错误事件子流程进行处理。而技术上的错误应该使用其他异常类型，通常不在流程内部处理。
            throw new BpmnError("BusinessExeptionOccured");
        }
    }
}
